CS 321: Software Engineering
(Fall 2018)
CONTACT INFORMATION
Email course staff only for logistical issues such as meeting outside of office hours, missing lecture, grading disputes, medical situations, etc. All other questions should be brought up in class, office hours, or Piazza.
BlackBoard is used for project submissions and to post grades.
Piazza is used for discussions, slides, links, and GTA communication.
Instructor: |
Katherine (Raven) Russell |
Instructor Email: |
krusselc_AT_gmu.edu |
Email Subject Line: |
[CS321] |
Office: |
Engineering, Rm 5328 |
Open Office Hours (no appointment needed) |
See Piazza |
GTA: |
See Piazza for contact information |
READING
This Semester's REQUIRED Book: The Phoenix Project by Kim, Behr, and Spafford (ISBN 10: 0988262509 / ISBN 13: 978-0988262508). This is available in paperback, on Kindle, and in audio book for less than $20 and you can preview the first few chapters on Amazon (get the audio book if you don't like reading).
There is no specifically required textbook for this class, but if you want a textbook the following are some options:
- Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures by H. Gomaa (ISBN 10: 0521764149 / ISBN 13: 978-0521764148)
- Software Engineering by Ian Sommerville, some recent edition (e.g. 9th Edition, ISBN 10: 0137035152 / ISBN 13: 978-0137035151, or 10th Edition, ISBN 10: 0133943038 / ISBN 13: 978-0133943030).
SOFTWARE & PROGRAMMING REQUIREMENTS
You will need a computer for this class with some modern operating system capable of running a Java compiler and some other misc. software. Remember that lab computers are also available on campus, see next section.
The prerequisites for this course are a grade of C or better in CS 310 and ENGH 302. I will assume "three semesters worth" of programming experience and knowledge of Java. You must understand basic program design, coding, and debugging techniques before taking this class.
COURSE OUTCOMES
- An understanding of all phases of the software engineering lifecycle (requirements, design, implementation, testing, deployment, maintenance).
- An understanding of several software lifecycle models including both prescriptive and agile models and knowledge of tradeoffs among these models.
- An ability to create and use UML models to develop and document software analysis and design artifacts.
- An understanding of fundamental project management and leadership issues for software teams.
- An ability to apply software engineering methods to address the requirements and design phases of a large software project.
CLASS COMPONENTS & REQUIREMENTS
- Class Participation - During lectures we will discuss concepts needed to meet the course outcomes, I will provide demos relevant to course work, and you will regularly have time to work with your team. You are expected to attend and actively engage in lectures and group activities. Lack of attendance or participation will result in a reduced grade.
- Office Hours - In addition to attending lectures, you are strongly encouraged to visit the professor and teaching assistant(s) during office hours to further your understanding of the material: we are here to help you learn. It is most helpful for team project questions if at least two members of the team come together.
- Readings - Related to most lectures will be some amount of reading which will be linked to in the schedule. We will also be reading a novel and selected teams will be asked to present the novel readings each week.
- Team Project - We will have a software project that requires you to participate in teams where you will organize, manage, and practice the software engineering lifecycle. This team project covers software requirements, design, coding, and testing in an agile setting. There will be group and individual grades associated with the weekly project. I reserve the right to assign a zero to any student for any deliverable retroactively if it turns out that nothing of academic merit was contributed by any individual. It is up you to prove their participation on deliverables.
- Homework - Most weeks (unless otherwise indicated on the schedule) you will have individual assignments which are due the following week at the beginning of class. These will be either smaller writing assignments and practice with UML diagrams and modeling.
- Quizzes - On lecture days there will be a open book quiz on the course material (including readings). These quizzes will be approximately 5 minutes each and take the place of the midterm.
- Writing Intensive (WI) Activities - CS321 includes Writing Intensive (WI) activities that, together with those of CS306, meet the GMU WI Requirements in the BS CS Program (http://wac.gmu.edu) This means you will write 1750 graded words (or about 7 standard pages). We will do several smaller assignments with feedback to help you improve your writing. For this course, part of the writing will be from small individual writing assignments as well as a larger individual essay.
- Exam - There will be a comprehensive final exam at the end of the semester.
GRADING POLICY
Team Project Deliverables |
32% (4% each) |
Individual Homework |
23% (2% per UML homework, 3% per writing homework, 8% final reflection) |
Quizzes & Class Participation |
20% |
Final Exam |
25% |
Contesting of grades on any/all submissions must be requested within one week of the item's return. No grade changes will be considered subsequent to that deadline, or after the final exam meeting.
FINAL GRADES
Final grades will be assigned without rounding according to the following criteria. It is a 10-point scale per letter grade, with the upper and lower 2% of each 10% earning a + or -.
A+ (>= 98.0%) A (>= 92.0%) A- (>= 90.0%) |
B+ (>= 88.0%) B (>= 82.0%) B- (>= 80.0%) |
C+ (>= 78.0%) C (>= 72.0%) C- (>= 70.0%) |
D (>= 60.0%) |
F (< 60.0%) |
ACADEMIC HONESTY
PRIME DIRECTIVE: Be able to explain your own work including homework, project deliverables, and exam solutions. The work you submit should be the product of your own effort and reflect your personal understanding unless the assignment is explicitly stated to be a group assignment (in writing). Students may be asked at any time to explain their contributions or exam solutions they submit. Inability to do so will be construed as evidence of misconduct.
Both the University and the Computer Science Department have honor codes you are expected to adhere to. We will be reviewing these in class, but more information about the university honor code can be found here: http://oai.gmu.edu/the-mason-honor-code-2/ and the deparment's honor code can be found here: http://cs.gmu.edu/resources/honor-code/. You are bound by these honor codes.
Any submitted work which shows too much commonality with others' work to be completely original, or any plagiarized work, will result in a case for the Honors Committee. Any code which is presented in class or provided to you as part of the project may be included in your programs.
CAMPUS RESOURCES
SPECIAL POLICIES
- Laptops and Other Electronic Devices - will be allowed in class only at certain times.
- Attendance - since in class quizzes and class participation are part of your grade, attendance is expected.
- Group Work - is ok for reading and studying and assignments specifically stated to be group work, but it is not ok for: individual assignments, quizzes, or exams.
- Late Assignments - will not be accepted without prior approval.
- Makeup Exams - require exceptional circumstances (as judged by me) and must be arranged in advance.